#include "print.h"
#include "init.h"
#include "thread.h"
#include "interrupt.h"
#include "vmm.h"
#include "keyboard.h"
#include "ioqueue.h"
#include "virtual_ide.h"
#include "shell.h"
#include "x86_disassemble.h"
#include "process.h"



int main(void) {
   intr_disable();
   //vmm_init
   put_str("I am kernel\n");
   //asm("jmp .");
   init_all();
   virtual_ide_init();
   shell_init();
   create_vm("vm1");
   
   // guest_kernel_init();
   
   // x86_disassemble((void*)(0xc0501500), (void*)(0xc0504987));
   
   //vm_run(thread);
   
   // asm("jmp .");
   
   
   intr_enable();

   

   asm("jmp .");
   

   // char byte_test;

   // while(1) {//shell
   //    intr_disable();
   //    byte_test = ioq_getchar(&kbd_buf);
   //    put_char(byte_test);
   //    intr_enable();
   // };
   return 0;
}

